//提示消息，3秒后消失
function tmacShow(message) {
    $.messager.show({
        title: '提示',
        msg: message,
        timeout: 3000,
        showType: 'slide'
    });
}

//进度条显示
// function tmacProgress(){

// }


//格式化unix时间戳
function getTime( /** timestamp=0 **/ ) {
    var ts = arguments[0] || 0;
    var t, y, m, d, h, i, s;
    t = ts ? new Date(ts * 1000) : new Date();
    y = t.getFullYear();
    m = t.getMonth() + 1;
    d = t.getDate();
    h = t.getHours();
    i = t.getMinutes();
    s = t.getSeconds();
    // 可根据需要在这里定义时间格式  
    return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + (h < 10 ? '0' + h : h) + ':' + (i < 10 ? '0' + i : i) + ':' + (s < 10 ? '0' + s : s);
}

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符， 
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子： 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

//强密码
var safePassword = function(value) {
    return !(/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\ {\} < > \ ? \\\/\'\"]*)|.{0,5})$|\s/
        .test(value));
};

//序列化表单
serializeObject = function (form) {
    var o = {};
    $.each(form.serializeArray(), function (index) {
        if (o[this['name']]) {
            o[this['name']] = o[this['name']] + "," + this['value'];
        } else {
            o[this['name']] = this['value'];
        }
    });
    return o;
};




// easyui扩展  
$.extend($.fn.validatebox.defaults.rules, {
    minLength: {
        validator: function(value, param) {
            return value.length >= param[0];
        },
        message: '长度至少 {0} '
    },
    phone: { // 验证电话号码  
        validator: function(value) {
            return /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
                .test(value);
        },
        message: '格式不正确,请使用下面格式:010-88888888'
    },
    mobile: {
        validator: function(value, param) {
            // return  
            // /^((\d2,3)|(\d{3}\-))?13\d{9}$/.test(value);  
            return /^1[3|4|5|8][0-9]\d{8}$/.test(value);
        },
        message: '手机号码不正确'
    },
    phoneOrMobile: {
        validator: function(value, param) {
            return (/^1[3|4|5|8|7][0-9]\d{8}$/.test(value) || /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
                .test(value));
        },
        message: '号码不正确'
    },
    CHS: {
        validator: function(value, param) {
            return /^[\u4e00-\u9fa5]+$/.test(value);
        },
        message: '请输入汉字'
    },
    safepass: {
        validator: function(value, param) {
            return safePassword(value);
        },
        message: '密码由字母和数字组成，至少6位'
    },
    number: {
        validator: function(value, param) {
            return /^[\+\-]?\d*?\.?\d*?$/.test(value);
        },
        message: '请输入数字'
    },
    equalTo: {
        validator: function(value, param) {
            return value == $(param[0]).val();
        },
        message: '两次输入的字符不一至'
    },
    IDNUMBER: {
        validator: function(value, param) {
            return /^(\d{18,18}|\d{15,15}|\d{17,17}[xX]?)$/
                .test(value);
        },
        message: '请输入正确的身份证号'
    },
    mustSelect: {
        validator: function(value, param) {
            return value != "-1";
        },
        message: '必需选择值'
    }
});


//#region 扩展easyui的Form,使其可以序列化，取值，赋值
//1 $('form').form('serialize');2.$('form').form('getValue','a'); //获取表单中name=a 的元素值;3. $('form').form('setValue',{'name':'a'}); //赋值给表单中name=a 的元素值
$.extend($.fn.form.methods, {
    serialize: function (jq) {
        var arrayValue = $(jq[0]).serializeArray();
        var json = {};
        $.each(arrayValue, function () {
            var item = this;
            if (json[item["name"]]) {
                json[item["name"]] = json[item["name"]] + "," + item["value"];
            } else {
                json[item["name"]] = item["value"];
            }
        });
        return json;
    },
    getValue: function (jq, name) {
        var jsonValue = $(jq[0]).form("serialize");
        return jsonValue[name];
    },
    setValue: function (jq, name, value) {
        return jq.each(function () {
            _b(this, _29);
            var data = {};
            data[name] = value;
            $(this).form("load", data);
        });
    }
});